home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / SSVDC.z / SSVDC
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSVVVVDDDDCCCC((((3333FFFF))))                                                            SSSSSSSSVVVVDDDDCCCC((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSVDC   - SSVDC is a subroutine to reduce a real NxP matrix X by
  10.      orthogonal transformations U and V to diagonal form.  The diagonal
  11.      elements S(I) are the singular values of X.  The columns of U are the
  12.      corresponding left singular vectors, and the columns of V the right
  13.      singular vectors.
  14.  
  15.  
  16. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  17.       SUBROUTINE SSVDC(X,LDX,N,P,S,E,U,LDU,V,LDV,WORK,JOB,INFO)
  18.  
  19. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  20.      On Entry
  21.  
  22.      XXXX REAL(LDX,P), where LDX .GE. N.
  23.         X contains the matrix whose singular value
  24.         decomposition is to be computed.  X is
  25.         destroyed by SSVDC.
  26.  
  27.      LLLLDDDDXXXX INTEGER
  28.         LDX is the leading dimension of the array X.
  29.  
  30.      NNNN INTEGER
  31.         N is the number of columns of the matrix X.
  32.  
  33.      PPPP INTEGER
  34.         P is the number of rows of the matrix X.
  35.  
  36.      LLLLDDDDUUUU INTEGER
  37.         LDU is the leading dimension of the array U.
  38.         (See below).
  39.  
  40.      LLLLDDDDVVVV INTEGER
  41.         LDV is the leading dimension of the array V.
  42.         (See below).
  43.  
  44.      WWWWOOOORRRRKKKK REAL(N)
  45.         work is a scratch array.
  46.  
  47.      JJJJOOOOBBBB INTEGER
  48.         JOB controls the computation of the singular
  49.         vectors.  It has the decimal expansion AB
  50.         with the following meaning
  51.         A .EQ. 0  Do not compute the left singular
  52.         vectors.
  53.         A .EQ. 1  Return the N left singular vectors
  54.         in U.
  55.         A .GE. 2  Return the first MIN(N,P) singular
  56.         vectors in U.
  57.         B .EQ. 0  Do not compute the right singular
  58.         vectors.
  59.         B .EQ. 1  Return the right singular vectors
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSVVVVDDDDCCCC((((3333FFFF))))                                                            SSSSSSSSVVVVDDDDCCCC((((3333FFFF))))
  71.  
  72.  
  73.  
  74.         in V.  On Return
  75.  
  76.      SSSS REAL(MM), where MM=MIN(N+1,P).
  77.         The first MIN(N,P) entries of S contain the
  78.         singular values of X arranged in descending
  79.         order of magnitude.
  80.  
  81.      EEEE REAL(P).
  82.         E ordinarily contains zeros.  However, see the
  83.         discussion of INFO for exceptions.
  84.  
  85.      UUUU REAL(LDU,K), where LDU .GE. N.  If JOBA .EQ. 1, then
  86.         K .EQ. N.  If JOBA .GE. 2 , then
  87.         K .EQ. MIN(N,P).
  88.         U contains the matrix of right singular vectors.
  89.         U is not referenced if JOBA .EQ. 0.  If N .LE. P
  90.         or if JOBA .EQ. 2, then U may be identified with X
  91.         in the subroutine call.
  92.  
  93.      VVVV REAL(LDV,P), where LDV .GE. P.
  94.         V contains the matrix of right singular vectors.
  95.         V is not referenced if JOB .EQ. 0.  If P .LE. N,
  96.         then V may be identified with X in the
  97.         subroutine call.
  98.  
  99.      IIIINNNNFFFFOOOO INTEGER.
  100.         the singular values (and their corresponding
  101.         singular vectors) S(INFO+1),S(INFO+2),...,S(M)
  102.         are correct (here M=MIN(N,P)).  Thus if
  103.         INFO .EQ. 0, all the singular values and their
  104.         vectors are correct.  In any event, the matrix
  105.         B = TRANS(U)*X*V is the bidiagonal matrix
  106.         with the elements of S on its diagonal and the
  107.         elements of E on its super-diagonal (TRANS(U)
  108.         is the transpose of U).  Thus the singular
  109.         values of X and B are the same.  LINPACK.  This version dated 03/19/79
  110.      .  G. W. Stewart, University of Maryland, Argonne National Lab.  External
  111.      SROT BLAS SAXPY,SDOT,SSCAL,SSWAP,SNRM2,SROTG Fortran
  112.      ABS,AMAX1,MAX0,MIN0,MOD,SQRT
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.